package com.common.www.bean.entity.programme;


import org.springframework.boot.base.jpa.domain.annotations.QueryCacheable;
import org.springframework.boot.base.jpa.domain.entity.NumberIdentityEntity;
import com.common.www.bean.entity.project.Project;
import com.common.www.bean.entity.project.SupplyCompany;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import lombok.*;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.validator.constraints.Length;

import javax.persistence.*;
import java.math.BigDecimal;

/**
 * 消防工程沉淀分析数据--到定标
 *
 * @param
 * @author andyliu
 * @date 5/28/2018 4:23 PM
 * @return
 */
@DynamicUpdate(true)
@DynamicInsert(true)
@Entity
@Getter
@Setter
@QueryCacheable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table()
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "消防工程沉淀分析数据--到定标")
@JsonIgnoreProperties(ignoreUnknown=true)
public class XfgcPrecipitate extends NumberIdentityEntity {

    /**
     * 当前项目
     */
    @JsonIgnoreProperties(value = {""})
    @ManyToOne()
    private Project project;
    /**
     * 供应公司(当前项目最终定标公司)
     */
    @JsonIgnoreProperties(value = {""})
    @ManyToOne()
    private SupplyCompany supplyCompany;
//    /**
//     * 名称
//     */
//    @Column(length = 128, nullable = false)
//    private String name;
    /**
     * 系统分类
     * HZ.火灾报警系统  GB.消防广播系统  XHS.消火栓系统  PL.自动喷淋系统  YY.余压监控系统  MHQ.灭火器系统  JL.防火卷帘系统  QT.气体灭火系统
     * FHM.防火门监控系统  DYJK.消防设备电源监控系统  HZJK.电气火灾监控系统  YJZM.集中控制型应急照明系统  LX.零星其他系统  XFJC.消防检测及验收
     * KZZJ.抗震支架系统  WB.质保期内维保    --ZB.增补清单(增补清单不作为系统分类)
     */
    @Column(length = 36)
    private String xiTong;
    /**
     * 业态
     */
    @Column(length = 36)
    private String yeTai;
    /**
     * 本项目定标单方A（元/m2）
     */
    @Column(length = 11, precision = 12, scale = 4)
    private BigDecimal basePriceA;

    /**
     * 历史项目
     */
    @JsonIgnoreProperties(value = {""})
    @ManyToOne()
    private Project choiceProject;
    /**
     * 历史项目  供应公司
     */
    @JsonIgnoreProperties(value = {""})
    @ManyToOne()
    private SupplyCompany choiceSupplyCompany;
    /**
     * 历史项目单方B（元/m2）
     */
    @Column(length = 11, precision = 12, scale = 4)
    private BigDecimal historyBasePriceB;

    /**
     * 差异单方A-B（元/m2）
     */
    @Column(length = 11, precision = 12, scale = 4)
    private BigDecimal abPrice;
    /**
     *差异分析
     */
    @Column(columnDefinition = "TEXT")
    private String chaYiFenXi;
//    /**
//     * 序号
//     */
//    @Column(length = 11)
//    private Integer sort;
    /**
     * 备注
     */
    @Column(length = 4096)
    @Length(max=4096,message = "备注最长不超过4096位")
    private String remarks;



}